package com.cy.server.factory;

import com.cy.server.RemoteProviderService;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class ProviderFallbackFactory implements FallbackFactory<RemoteProviderService> {

    //org.slf4j.Logger是java中的日志规范，定义了一组接口
    //org.slf4j.Logger这个接口的实现类有Slf4j，logback
//    private static Logger log = LoggerFactory.getLogger(ProviderFallbackFactory.class);


    @Override
    public RemoteProviderService create(Throwable throwable) {

        log.error("用户调用失败",throwable.getMessage());

//        return new RemoteProviderService() {
//
//            @Override
//            public String echoMessage(String msg) {
//
//                //。。。给运维人员发消息。。
//                return "服务忙，稍等片刻再访问";
//
//            }
//
//        };

//        //如上写法的简化形式如下：借助了jdk8中lambda表达式
//        return (msg)->{//lambda
//
//            //。。。给运维人员发消息。。
//            return "服务忙，稍等片刻再访问";
//
//        };

        return msg -> "服务忙，稍等片刻再访问";

    }
}
